package com.tyae.managedBean.relatorios;

import java.io.IOException;
import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import net.sf.jasperreports.engine.JRException;

import com.tyae.bean.Comarca;
import com.tyae.bean.Empresa;
import com.tyae.bean.Usuario;
import com.tyae.dao.DAOFactory;
import com.tyae.relatorios.servico.GeradorRelatorio;
import com.tyae.relatorios.servico.RelatorioFactory;

@ManagedBean
@SessionScoped
public class ControleImpressaoProcessoComarca implements Serializable {

	private static final long serialVersionUID = 1L;
	private Empresa empresa;
    private List<Comarca> comarcas;
    private Comarca comarca;
    private Comarca comarcaSelecione;
    
	public ControleImpressaoProcessoComarca(){
	}


	public void imprimir() throws JRException, IOException{
		GeradorRelatorio gerador = RelatorioFactory.getGerador();
		gerador.setCaminhoRelatorio("/com/tyae/relatorios/RelProcessoComarca.jasper");
		
		gerador.addParametro("PEmpresa", getEmpresa().getDescricao());
		gerador.addParametro("PComarca", getComarca().getCodigoComarca() == 0 ? "%" : getComarca().getDescricao()+"%");
		/* 
		gerador.addParametro("PISSN", getISSN());
		gerador.addParametro("PBiblioteca", getBiblioteca());
		*/
		gerador.imprimir();
	}


	public Empresa getEmpresa() {
		if (empresa == null){
			HttpSession session = null;	
			session = ( HttpSession ) FacesContext.getCurrentInstance().getExternalContext().getSession( true );  
			Usuario usuario = (Usuario) session.getAttribute( "usr" ); 		
			empresa = usuario.getEmpresa();
		}
		return empresa;
	}


	public void setEmpresa(Empresa empresa) {
		this.empresa = empresa;
	}


	public List<Comarca> getComarcas() {
		if (comarcas == null){
			comarcas = DAOFactory.getComarcaDAO().getSelecionar("", getEmpresa().getCodigoEmpresa());
		}

		return comarcas;
	}


	public void setComarcas(List<Comarca> comarcas) {
		this.comarcas = comarcas;
	}


	public Comarca getComarca() {
		return comarca;
	}


	public void setComarca(Comarca comarca) {
		this.comarca = comarca;
	}


	public Comarca getComarcaSelecione() {
		if (comarcaSelecione == null){
			comarcaSelecione = new Comarca();
		}
		
		return comarcaSelecione;
	}


	public void setComarcaSelecione(Comarca comarcaSelecione) {
		this.comarcaSelecione = comarcaSelecione;
	}

}
